home *** CD-ROM | disk | FTP | other *** search
/ Network Supervisor's Toolkit / Network Supervisor's Toolkit.iso / novell / nw386 / ram-2.386 < prev    next >
Text File  |  1996-07-10  |  6KB  |  173 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11. Chapter 2
  12. RAM Requirements
  13.  
  14.  
  15.  
  16. The NetWare 386 operating system runs on a computer with
  17. an 80386 CPU that can address up to 4GB of RAM. A NetWare
  18. 386 server requires at least 2MB of RAM divided among
  19. DOS, the NetWare 386 operating system, and units of cache
  20. buffers. Since the memory needs of DOS and the initial
  21. NetWare OS are relatively constant, this chapter deals
  22. primarily with how the cache buffers are used. It
  23. includes the following sections:
  24.  
  25.    ■ Cache Buffers
  26.    ■ Dynamic Configuration
  27.  
  28.  
  29.  
  30. Cache Buffers
  31.  
  32. The NetWare operating system requires a portion of the
  33. 386 RAM for itself and a portion for cache buffers. The
  34. default cache buffer size is 4KB. When booting the
  35. computer with the NetWare operating system, a supervisor
  36. can specify a cache buffer size of 4KB, 8KB, or 16KB. The
  37. server uses these cache buffers in a variety of ways:
  38.  
  39.    ■ The server loans cache buffers to NetWare Loadable
  40.      Modules (NLMs) such as LAN drivers, disk drivers,
  41.      the INSTALL utility, and the VREPAIR utility. When
  42.      a loadable module such as the INSTALL utility is
  43.      removed from server memory, the module returns the
  44.      borrowed memory to the cache buffer pool. 
  45.  
  46.    ■ The server allocates sufficient cache buffers to
  47.      cache each volume's entire FAT in memory. ■The server allocates enough cache buffers to cache
  48.      parts of each volume's Directory Table.
  49.  
  50.    ■ The server uses cache buffers as needed to cache
  51.      parts of files that users want to access. 
  52.  
  53.    ■ The server allocates cache buffers to build a hash
  54.      table for all directory names.
  55.  
  56.    ■ The server allocates cache buffers to build Turbo
  57.      FAT Indexing Tables for all open files that have 64
  58.      FAT entries or more and are randomly accessed.
  59.  
  60. Dynamic Configuration
  61.  
  62. In earlier versions of NetWare, a supervisor installing
  63. NetWare on a server had to allocate a certain amount of
  64. server memory for features such as directory cache blocks
  65. and routing buffers. However in NetWare 386, the
  66. following features allocate memory for themselves
  67. dynamically, based on need and available memory:
  68.  
  69.    ■ Directory cache buffers
  70.    ■ File service processes
  71.    ■ Turbo FAT index tables
  72.    ■ FAT tables
  73.    ■ Routing buffers
  74.    ■ Disk elevator size
  75.    ■ Directory hash tables
  76.    ■ Router/server advertising memory
  77.    ■ Maximum number of open files
  78.    ■ File locks
  79.    ■ Kernel processes
  80.    ■ Kernel semaphores
  81.    ■ TTS transactions
  82.    ■ Memory for loadable modules
  83.  
  84. However, this self-configuration in which a process
  85. allocates memory according to its need is somewhat
  86. restricted. To prevent memory allocation because of
  87. sudden, infrequent peaks of server activity, the server
  88. waits a few seconds after a need arises. Then, if an
  89. existing process becomes available to service the need,
  90. further memory allocation is unnecessary. Dynamic memory allocation can be done in five ways, two
  91. that are nonreturnable and three that are returnable.
  92.  
  93. NonReturnable Memory
  94.  
  95. Nonreturnable memory is not returned to the file cache
  96. buffer after it is deallocated, unless the server is
  97. brought down. However, with one exception (Permanent
  98. Memory Alloc Pool), nonreturnable memory can be returned
  99. to the memory pool from which it is allocated.
  100.  
  101. Alloc Pool
  102.  
  103.    ■ Allocates memory quickly, efficiently
  104.    ■ Allocates memory in sizes smaller than 4KB cache
  105.      block
  106.    ■ Allocates memory needed for a short time
  107.      (For example, time to service a single request,
  108.      the duration of a user session)
  109.    ■ Allocates exact size of memory requested
  110.    ■ Does NOT return memory to the file cache buffer pool
  111.    ■ Returns memory to memory pool
  112.    ■ Does NOT move memory
  113.  
  114. Permanent Memory Alloc Pool
  115.  
  116.    ■ Allocates memory in any size
  117.    ■ Allocates exact size of memory requested
  118.    ■ NEVER returns memory to the file cache buffer pool
  119.      (NLMs cannot
  120.      use this allocater)
  121.    ■ NEVER returns memory to memory pool
  122.    ■ Does NOT move memory
  123.  
  124. Permanent Returnable
  125.  
  126.    ■ Allocates memory in size smaller than 4KB cache
  127.      block
  128.    ■ Allocates memory needed for a long time
  129.    ■ Allocates exact size of memory requested
  130.    ■ Does NOT return memory to the file cache buffer pool
  131.    ■ Returns memory to memory pool
  132.    ■ Does NOT move Memory Returnable Memory
  133.  
  134. Memory that is returnable is returned to the file cache
  135. buffer pool after it is deallocated. All returnable
  136. memory is also returned to the memory pool after it is
  137. deallocated.
  138.  
  139. NonMovable Memory (Used by NLMs)
  140.  
  141.    ■ Allocates memory in large cache blocks of 4KB,
  142.      8KB, or 16KB
  143.    ■ Allocates memory for any period of time
  144.    ■ Returns memory to the file cache buffer pool
  145.    ■ Returns memory to memory pool
  146.    ■ Does NOT move Memory
  147.  
  148. Movable Memory
  149.  
  150.    ■ Allocates memory in large cache blocks of 4KB, 8KB,
  151.      or
  152.      16KB that may need to be expanded (Used for system
  153.      tables
  154.      that can grow because of dynamic configuration.)
  155.    ■ Allocates memory for any period of time
  156.    ■ Returns memory to the file cache buffer pool
  157.    ■ Returns memory to memory pool
  158.    ■ Moves memory (Special routines must be provided to
  159.      adjust
  160.      pointers to this memory. Pointers used to access
  161.      this memory
  162.      must be reloaded into registers any time the code
  163.      makes a call
  164.      to a function that could cause the process to
  165.      block.)
  166.    ■ Causes no fragmentation of cache buffer memory pool 
  167.      
  168.  
  169. Dynamic memory allocation allows the number of cache
  170. buffers needed for Directory Table blocks to grow
  171. according to demand. The number of Turbo FATs also grows
  172. when another file needs to be indexed.
  173.